const express = require('express');
const ws = require('ws');
const http = require('http');

const app = express();
app.use(express.static('./'));

// 1.用http模块把socket服务器和express服务器连接起来
const server = http.createServer(app);

// 2.启动websocket服务器
let wss = new ws.Server({
    server
});

// 3.配合express开启服务器
server.listen(3000,()=>{
    console.log('server is running!');
})

// 4.监听：只有客户端连接socket服务器时，才会触发connection事件
wss.on('connection',(client)=>{
    console.log('connection');

    // 4.1 客户端发送消息给服务端时，触发message事件
    client.on('message',(msg)=>{
        // msg为客户端发送给服务端的所有信息
        console.log(msg);

        // 4.2 广播消息给所有客户端：wss.clients存储着所有客户端
        wss.clients.forEach(item=>{
            item.send(msg);
        })
    })
})
